home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / utility / 406 / utility2 / protect.s < prev    next >
Encoding:
Text File  |  1989-08-18  |  4.0 KB  |  146 lines

  1.  PEA intro(PC)    ;start beskjed
  2.  MOVE.W #9,-(SP)  ;print line
  3.  TRAP #1          ;gemdos
  4.  ADDQ.L #6,SP
  5. check_disk:
  6.  MOVE.W #7,-(SP)  ;les tegn
  7.  TRAP #1          ;gemdos
  8.  ADDQ.L #2,SP
  9.  CMP.B #'n',D0    ;er det nei ?
  10.  BNE lets_check   ;nei - sjekke disk
  11.  CLR.W -(SP)      ;exit
  12.  TRAP #1
  13. lets_check:
  14.  BSR read_boot    ;lese disk boot-sector
  15.  BSR checksum     ;checksum i D7
  16.  CMP.W #$1234,D7  ;executable ?
  17.  BNE no_danger    ;nei - ingen fare
  18.  PEA warning(PC)  ;skrive advarsel
  19.  MOVE.W #9,-(SP)  ;print line
  20.  TRAP #1          ;gemdos
  21.  ADDQ.L #6,SP
  22.  BRA immunize     ;kverke og beskytte disk
  23. no_danger:
  24.  LEA buf(PC),A6
  25.  CMP.B #$60,(A6)
  26.  BNE immunize
  27.  PEA immune(PC)   ;skrive beskjed
  28.  MOVE.W #9,-(SP)  ;print line
  29.  TRAP #1          ;gemdos
  30.  ADDQ.L #6,SP
  31.  BRA more_disks   ;flere disketter ?
  32. immunize:
  33.  PEA protect(PC)  ;beskytte disk beskjed
  34.  MOVE.W #9,-(SP)  ;print line
  35.  TRAP #1          ;gemdos
  36.  ADDQ.L #6,SP
  37.  MOVE.W #7,-(SP)  ;les tegn
  38.  TRAP #1          ;gemdos
  39.  ADDQ.L #2,SP
  40.  CMP.B #'y',D0    ;er det ja ?
  41.  BNE more_disks   ;nei - ny disk
  42.  BSR protect_disk ;beskytte disk
  43. more_disks:
  44.  PEA check(PC)    ;flere disker beskjed
  45.  MOVE.W #9,-(SP)  ;print line
  46.  TRAP #1          ;gemdos
  47.  ADDQ.L #6,SP
  48.  BRA check_disk   ;sjekke ny disk ?
  49.  
  50. checksum:
  51.  CLR.W D7
  52.  LEA buf(PC),A6
  53.  MOVE.W #255,D6
  54. loop3:
  55.  ADD.W (A6)+,D7
  56.  DBRA D6,loop3
  57.  RTS
  58.  
  59. read_boot:
  60.  MOVE.W #1,-(sp)     ;Antall sektorer paa stack
  61.  MOVE.W #0,-(sp)     ;Side 0 paa stack
  62.  MOVE.W #0,-(sp)     ;Track 0 paa stack
  63.  MOVE.W #1,-(sp)     ;Sector 1 paa stack
  64.  MOVE.W #0,-(sp)     ;Drive 0 (A) paa stack
  65.  CLR.L -(sp)         ;Ubrukt paa stack
  66.  PEA buf(PC)         ;buffer-adresse paa stack
  67.  MOVE.W #8,-(sp)     ;XBIOS 8 (floprd) paa stack
  68.  TRAP #14            ;Kalle opp XBIOS
  69.  ADD.L #20,sp        ;Rette opp stack-pointer
  70.  RTS
  71.  
  72. protect_disk:
  73.  LEA buf(PC),A6
  74.  LEA bstart(PC),A5
  75.  MOVE.L (A5),(A6)    ;Start paa bootsector
  76.  MOVE.L 4(A5),4(A6)
  77.  
  78.  ADD.L #30,A6        ;Ledig plass 30 frem
  79.  LEA btxt(PC),A5     ;Adresse til bootprg i A5
  80. loop: 
  81.  MOVE.B (A5)+,(A6)+  ;Flytte fra adresse til adresse
  82.  TST.B (A5)          ;0 betyr slutt
  83.  BNE loop            ;Neste tegn
  84.  
  85.  MOVE.W #208,D6      ;Blanke ut resten
  86. loop2:               ;av boot-sektoren
  87.  CLR.B (A6)+
  88.  DBRA D6,loop2
  89.  
  90.  MOVE.W #1,-(sp) ;Antall sektorer paa stack
  91.  MOVE.W #0,-(sp) ;Side 0 paa stack
  92.  MOVE.W #0,-(sp) ;Track 0 paa stack
  93.  MOVE.W #1,-(sp) ;Sector 1 paa stack
  94.  MOVE.W #0,-(sp) ;Drive 0 (A) paa stack
  95.  CLR.L -(sp)     ;Ubrukt paa stack
  96.  PEA buf(PC)     ;buffer-adresse paa stack
  97.  MOVE.W #9,-(sp) ;XBIOS 9 (flopwr) paa stack
  98.  TRAP #14        ;Kalle opp XBIOS
  99.  ADD.L #20,sp    ;Rette opp stack-pointer
  100.  RTS
  101.  
  102. intro:
  103.  DC.B 27,'E',10,"  ABK-BBS's Virus Killer & Protector",13,10,10
  104.  DC.B '  ',$BD,' by Lars-Erik 2sterud - July 1989',13,10,10,10
  105.  DC.B '  Call ABK-BBS in Oslo, Norway  +47 2 13 26 59',13,10,10
  106.  DC.B '  Adress:  2kriveien 39, N-1349 Rykkinn, Norway',13,10,10
  107.  DC.B '  E-mail:  leoe',64,'ifi.uio.no / f-leoe',64,'ifi.uio.no'
  108. check:
  109.  DC.B 13,10,10,10,'  Check disk in drive A: for Auto-Booting program ? ',0
  110.  
  111. warning:
  112.  DC.B 13,10,10,10,7,'  WARNING, Disk is AUTO-',7
  113.  DC.B 'BOOTING ',7,'(could be a VIRUS)',13,7,0
  114. immune:
  115.  DC.B 13,10,10,'  Disk in drive A: is allready protected.',13,0
  116. protect:
  117.  DC.B 13,10,10,'  Do you want to KILL & PROTECT disk in drive A: ? ',0,0
  118.  
  119. bstart:
  120.  DC.W $601C     ;Hoppe til prg (buf+30)
  121.  DC.B 'Loader'  ;Narre ekte virus
  122.  
  123. btxt:           ;Legges inn p boot-sektor
  124.  RTS
  125.  DC.B "################"
  126.  DC.B " Disk protected "
  127.  DC.B "  by ABK-BBS's  "
  128.  DC.B "   Anti-Virus   "
  129.  DC.B "################"
  130.  DC.B "  Dial ABK-BBS  "
  131.  DC.B "  Oslo, Norway  "
  132.  DC.B " +47 2 13 26 59 "
  133.  DC.B "################"
  134.  DC.B "  L.E. 0sterud  "
  135.  DC.B "  0kriveien 39  "
  136.  DC.B " N-1349 Rykkinn "
  137.  DC.B "     Norway     "
  138.  DC.B "################"
  139.  DC.B " Send E-mail to "
  140.  DC.B "leoe",64,"ifi.uio.no "
  141.  DC.B "################",0,0
  142.  
  143. buf:  ;Buffer for disk read/write (gidder ikke sette av plassen n)
  144.  
  145.  END
  146.